//
// NewtonMethod.h
// Newton fixed point method implementation.
//
// Author: Gabriel H. Barbuto (gbarbuto@dc.uba.ar)
//
#ifndef _NEWTON_METHOD_H_
#define _NEWTON_METHOD_H_

#include <cstddef>
#include <functional>
#include <vector>

#include "FixedPointMethod.h"
#include "IterativeMethod.h"
#include "TP1MetNumDLL.h"

class NewtonMethod : public FixedPointMethod
{
public:

	TP1METNUMDLL_API NewtonMethod(std::function<double(double)> const &f, std::function<double(double)> const &df, std::size_t const &iterations);

	TP1METNUMDLL_API NewtonMethod(std::function<double(double)> const &f, std::function<double(double)> const &df, double const &epsilon = IterativeMethod::default_epsilon(), std::size_t const &iterations = IterativeMethod::default_iterations());
};

#endif

